home *** CD-ROM | disk | FTP | other *** search
- .\" Uses -mm macros
- .ds Rh P1003.17 - Name Space/Directory Services (plus 1224/1224.1 Object Management)
- .ds Au Mark Hazzard <markh@rsvl.unisys.com>
- .ds Dt January 7-11, 1991
- .ds Lo New Orleans, LA
- .ds Ed Jeffrey S. Haemer <jsh@usenix.org>
- .ds Wd U\s-3SENIX\s0 Standards Watchdog Committee
- .if '\*(Su'' \{\
- .ds Su the \*(Dt meeting in \*(Lo:
- .\}
- .if n \{\
- .tm Subject: Standards Update, \*(Rh
- .tm From: \*(Ed
- .tm Reply-To: std-unix@uunet.uu.net
- .tm Organization: \*(Wd
- .tm
- .\}
- .S 12
- .TL
- An Update on U\s-3NIX\s0\u\s-41\s0\d-Related Standards Activities
- .FS 1.
- UNIX\u\(rg\d is a Registered Trademark of UNIX System Laboratories
- in the United States and other countries.
- .FE
- .nr :p 1
- .sp
- \*(Rh
- .AF "\*(Ed, Report Editor"
- .AU "\*(Wd"
- .MT 4
- .if n \{\
- .nh
- .na
- .\}
- .PF "'\*(DT Standards Update' '\Objects'"
- \*(DT
- .P
- [Editor's note:
- ``Object'' and ``objection'' have the same root word.
- What follows are three distinct viewpoints
- on \s-1TCOS\s0's object-management activities.
- The first is Mark Hazzard's overview of 1003.17,
- The second is Scott Guthery's critique of the object management work,
- currently being jointly done by 1003.17 and 1224,
- the third is Enzo Signore's rebuttal of Scott's position.
- After you read them, you might want to let the committees,
- know how you feel,
- either directly, or through Peter Collinson,
- the new Usenix Institutional Representative.]
- .P
- \fB\*(Au\fP reports on \*(Su
- .HU "Introduction"
- New Orleans was busy for the P1003.17 \(em Name Space/Directory Services group.
- It was our first meeting as an ``official'' \s-1POSIX\s0 ``dot'' working group,
- and seemed to build on the momentum gained in the previous meeting.
- A good turnout from the old ``core'' group,
- coupled with the infusion of ``new blood''
- from the \(*x/Open base-document development team,
- seemed to provide the right chemistry
- for some dynamic interchange and good solid progress.
- .P
- As I stated last time,
- our group is currently in the process of ``\s-1POSIX\s0izing'' \s-1XDS\s0.
- This means reworking \s-1XDS\s0
- to conform to \s-1POSIX\s0 style, content, and format requirements.
- Much of this is busy-work,
- that falls largely on the shoulders of our (overworked) Technical Editor.
- A first cut at the new format
- will be included with the first mailings.
- It can be best characterized as a ``\fIvery\fP preliminary pre-draft,''
- and is intended to be a baseline from which a working draft can be built.
- .HU "Language Independent Specification"
- A good deal of time was spent on \s-1LIS\s0 issues,
- both in our working sessions
- and in the joint working sessions with P1224
- on common Object Management \s-1API\s0 issues.
- We were able to produce complete \s-1LIS\s0s
- for several functions and their data types,
- by building on the homework done by group members
- between meeting cycles.
- Readers may want to review the complicated discussion from last time
- on how and why two specifications,
- \s-1XOM\s0 (Object Management)
- and \s-1XDS\s0 (Directory Services),
- are required to form a single \s-1API\s0 to directory services.
- X\s-1OM\s0 is also used by the \s-1API\s0 to X.400.
- .HU "Test Assertions
- Several group members had a bunch of fun
- finding out how to write test assertions for the C-language binding
- of our \s-1API\s0.
- We even got together with some P1224 folks,
- and worked on \s-1TA\s0s for \s-1OM\s0.
- We managed to write a few assertions
- and uncover some issues along the way.
- We also agreed to use identical conventions in .17 and P1224.
- During the process,
- we discovered that writing \s-1TA\s0s
- is not an well-understood art,
- and what everyone seems to be doing
- is looking at what everyone else is doing.
- .P
- Where do \s-1TA\s0s go?
- They could be included with the function specification
- (possibly less work)
- or lumped together into a separate chapter or annex
- (possibly more work).
- We've opted for the lump.
- The rationale for this seemingly irrational decision
- is documentation page count ($$$).
- We figured that the only people who really care about test assertions
- (besides us standards types)
- are vendors,
- test suite writers,
- certification labs,
- and a few \s+2LARGE\s0 customers,
- like the \s-1U.S.\s0 Government
- Everyone else (users)
- just wants to buy documentation on a certified \s-1API\s0.
- We wanted to make it \fIreally\fP easy for the \s-1IEEE\s0 to print
- ``with'' and ``without'' versions of the standard.
- .HU "Object Management"
- ``Object'' and ``management'' are two intensely overloaded words.
- Used together,
- the two can instill fear in even the most seasoned hack.
- While conjuring up a name to put on the Project Authorization Request
- (\s-1PAR\s0)
- for our common \s-1OM API\s0,
- the combined talent of the .17 and 1224 groups
- decided that the best defense was a good offense
- and selected what may be the most offensive project title
- in the history of \s-1IEEE\s0 \s-1PAR\s0dom:
- ``Standard for Common ASN.1 Object Management API
- for X.400 and Directory Services APIs.''
- If approved,
- it should get a number like P1224.1 or something like that.
- .P
- Flush with success,
- the group decided to tackle the Scope section of the \s-1PAR\s0,
- which probably constitutes its only real ``meat.''
- After considerable debate the group came up with these three sentences:
- .sp
- .in +5
- The standard will define an ASN.1 Object Management (OM)
- Application Program Interface (API) for use with,
- but otherwise independent of,
- the X.400 and Directory Service (DS) API's,
- which are currently being standardized.
- An application must be able to link and use
- multiple implementations of this API.
- This standard will provide
- language independent specification and ``C'' language bindings.
- .in -5
- .P
- The words did not come without a little pain.
- The base document (\s-1XOM\s0) was produced with specific targets in mind,
- namely the \s-1ASN\s0.1-encoded objects and attributes
- defined in the \s-1XDS\s0 and X.400 specifications.
- It defines an \s-1API\s0
- for manipulation of those objects across the \s-1API\s0,
- but doesn't define the objects themselves.
- The object definitions are provided in the ``primary'' standard
- (either \s-1XDS\s0 or X.400)
- in a set of \s-1ASN\s0.1 constructs called a ``package.''
- .P
- In an accompanying article,
- Scott Guthery, a group member from the user community,
- expresses concern that there is no mechanism in the base document
- for extending existing objects or adding new ones.
- This is because the object definitions are well-defined
- within the context of their \s-1API\s0 (package)
- and have been hard-wired into the object manager.
- .P
- Vendors can provide value added to extensions their products,
- but users cannot.
- Further,
- a user who purchases a product from one vendor
- that uses a (non-standard) extended package
- will have no guarantee that it will work
- with an object manager from another vendor.
- With the ability to modify or create new packages
- in a standardized way,
- these problems could be avoided.
- .P
- Counter-arguments primarily addressed practical limitations to the scope,
- and the technical infeasibility of dynamically altering packages
- (which are really protocols).
- See Enzo Signore's accompanying article for a brief summary.
- The ability to extend an object package
- is not required for basic interoperability or portability
- for \s-1XDS\s0 or X.400 \s-1API\s0s as currently specified.
- A general-purpose, user-extensible object management facility may be useful,
- but might be technically infeasible
- (or at least very difficult).
- It would almost certainly delay acceptance of \s-1API\s0s
- that depended on it.
- .P
- Getting back to the \s-1PAR\s0.
- The group agreed
- that the words in the scope addressed the immediate issue
- of getting an \s-1OM\s0 specification out
- so that P1003.17 and P1224 could continue.
- At the same time,
- the scope doesn't shut the door on a more general-purpose object manager,
- if it's deemed necessary and do-able.
- .P
- I expect this will get sorted out after our next meeting in Chicago,
- but if this continues to be an area of high controversy,
- you'll see the topic resurface in my future reports.
- .P
- In any case,
- the \s-1OM PAR\s0 was blessed by the Distributed Services Steering Committee
- and was forwarded to the \s-1TCOS\s0 \s-1SEC\s0 for further scrutiny.
- .HU "Summary"
- So,
- that's a peek at what's going on in \s-1P1003.17\s0.
- We can expect more of the same next time.
- We'll review our progress on \s-1LIS\s0,
- probably do more test assertions,
- and generally begin to add some flesh to the document skeleton.
- We plan to meet with P1224 for a day
- to continue our co-development effort
- on common \s-1API\s0 to object management.
- Maybe we'll see you in Chicago.
- .sp 2
- .P
- .ds Au "Scott Guthery <guthery@asc.slb.com>
- \fB\*(Au\fP reports on \*(Su
- .HU "Here Come the Objects"
- .P
- X.400 (P1224) and Directory Services (P1003.17)
- have as their base documents \s-1X/O\s0pen documents,
- which in turn share an \s-1X/O\s0pen Object Management specification.
- At the just-concluded New Orleans \s-1POSIX\s0 meeting
- a Project Authorization Request (\s-1PAR\s0)
- for a \s-1POSIX\s0 Object Management standard was formulated.
- Here is the scope of the \s-1PAR\s0:
- .P
- .in +5
- The standard will define
- an \s-1ASN\s0.1 Object Management (\s-1OM\s0) Application Program Interface
- (\s-1API\s0)
- for use in conjunction with but otherwise independent of
- the X.400 and Directory Service (\s-1DS\s0) \s-1API\s0's,
- which are currently being standardized.
- An application must be able to link and use
- multiple implementations of this \s-1API\s0.
- This standard will provide language independent specification
- and ``C'' language bindings.
- .in -5
- .P
- ``What does that mean?''
- you may ask yourself.
- Based on discussions during the formation of this \s-1PAR\s0
- this is my understanding:
- .P
- The first sentence means that
- object classes will be hard-wired into the \s-1OM\s0
- and that the object managers being considered
- will only instantiate X.400 and \s-1DS\s0 classes.
- Further,
- only vendors of standard-conforming software
- will be able to add classes to the \s-1OM\s0;
- there will be no provision on the standard interface for doing so.
- Finally,
- an \s-1OM\s0 will manage only instances of classes (objects)
- that are hard-wired into itself.
- Not surprisingly,
- this requires the second sentence.
- .P
- The second sentence means
- that while the vendors are willing to agree on the interface
- they are not prepared to agree on standards for objects themselves
- (even though they are all \s-1ASN\s0.1-based).
- That is,
- vendor A's objects cannot be managed by vendor B's object manager
- and vice-versa.
- Objects themselves,
- as manipulated by the object manager,
- are to be proprietary.
- This is primarily because
- many of the vendors have already written object management software
- and the software that uses it,
- and are primarily interested in formulating a standard
- to which they can, after-the-fact, claim conformance.
- .P
- The third sentence is boilerplate.
- .P
- A couple of things bother me about this agenda.
- First, I don't like to see classes of users
- \(em privileged vendors who can define new classes
- vs. unwashed end-users who can only use what they're given
- (or, more properly what they buy)
- \(em institutionalized in a standard.
- .P
- Second,
- and really more bothersome
- because I suspect the first one will work itself out naturally,
- is the ``requirement'' for multiple, concurrently executing
- but not interoperating standard-conforming subsystems.
- My belief is that we should talk this one out carefully,
- make darn sure we all know exactly what we are talking about,
- insure we are talking about the same thing
- and convince ourselves it's something we want to enshrine in a standard
- (whew).
- .P
- Isn't one purpose of a standard interoperation?
- If interoperation is left as an impedance-matching exercise for the user
- is there really a useful standard in play at all
- even if the user can use a single interface
- on which to do the required impedance-matching?
- Might the jaundiced eye view this as a truck-sized hole
- through which vendors can drive claims to standard-compliance
- while exhibiting little-to-no effective standard-conformance behavior?
- .P
- \&``Link and use multiple implementations'' isn't good enough.
- Indeed, it's a bad idea.
- To me, it's analogous to
- a hardware standard (like \s-1RS\s0232) specifying little more than
- that implementations "use blue wires."
- I have to string a different set of blue wire
- for each vendor whose devices I purchase.
- And, what's worse,
- it's up to me to somehow get the information
- off one vendor's wires and onto another vendor's wires
- if I want the two vendors' devices to cooperate.
- The standard says something like
- ``You get the information out at the end,
- which shall have 1/2 inch of bare wire.''
- Frankly, being able to buy blue wire in bulk
- is little consolation for the trouble that I have to go to
- to make the whole mess work.
- .P
- Of course,
- what I'm being invited to do is buy devices from only one vendor,
- which is, I suspect,
- exactly what the vendors had in mind
- when they put that ``requirement'' in the \s-1PAR\s0.
- As an historical note,
- the second sentence originally started off ``Users require that ...''
- until one of the few users around the table
- pointed out that single-source and vendor lock-in
- was not high on his list of requirements at all
- and expressed surprise that the standards process was or could be used
- to encourage it.
- .P
- As they say in Norway,
- there's owls in the bushes.
- .sp 2
- .P
- .ds Au Enzo Signore <enzo@retix.retix.com>
- \fB\*(Au\fP reports on \*(Su
- .P
- Scott Guthery doesn't like the proposed 1003.17/1224 approach
- to Object Management.
- I do.
- Here's a summary of why I think Scott's objections miss the mark.
- .P
- Since a package is another way of representing a protocol
- (a set of \s-1ASN\s0.1 productions)
- the addition of another package to the \s-1API\s0
- or the addition of new classes to the provided \s-1API\s0
- implies defining extensions to the protocol.
- Aside from the feasibility of doing so,
- it would require the underlying service
- to be able to interpret the additional \s-1ASN\s0.1 properly
- and to be able to encode and decode it.
- Unfortunately,
- it is not possible to do so in an implementation-independent way,
- since the \s-1OM\s0 representation of an object,
- even though it follows the \s-1ASN\s0.1 skeleton,
- does not allow the service to generate a unique \s-1ASN\s0.1 production.
- Said in different words,
- even if the client application defines a new object class
- with some attributes
- (lets say of primitive types
- \(em booleans, integers, etc.)
- the sole object table does not allow the service to generate \s-1ASN\s0.1,
- since all the context-specific tags and
- the notion of \s-1SEQ\s0 vs \s-1SET\s0 are missing.
- .P
- Therefore, designing such a new interface will:
- .P
- .AL
- .LI
- prove wrong when the protocol cannot be extended
- .LI
- be excessively complex to define because of \s-1OM\s0 design
- .LI
- require overly sophisticated machinery in the service to
- be able to deal with generic and extensible object definitions.
- .LE
-